Skip to content

Default to 1M context models and add model selector#90

Merged
mcintyre94 merged 2 commits intomcintyre94:mainfrom
zmanian:what-ux-do-we-have-for-selecting-what-model-to-use
Mar 15, 2026
Merged

Default to 1M context models and add model selector#90
mcintyre94 merged 2 commits intomcintyre94:mainfrom
zmanian:what-ux-do-we-have-for-selecting-what-model-to-use

Conversation

@zmanian
Copy link
Contributor

@zmanian zmanian commented Mar 15, 2026

Summary

  • Use opus[1m] and sonnet[1m] CLI aliases to enable 1 million token context windows
  • Change default model from Sonnet to Opus
  • Haiku unchanged (no 1M variant available)

Test plan

  • Verified opus[1m] and sonnet[1m] aliases work with local Claude CLI
  • All 267 tests pass
  • Verify model picker in Settings shows correct options
  • Verify chat sessions use the selected model with 1M context

Generated with Claude Code

@mcintyre94
Copy link
Owner

1m is a good shout! I'm not sure about changing the model, I think Sonnet is generally a good default. But I think it might be nice to make it easier to change the model when you need/want to in a chat.

One option that comes to mind:

  • Change the status indicator to a model dropdown when it's in .idle. Default to the settings default
  • Also show it when the chat is empty, so you can change the model before sending a first message
  • Add model to the chat view model as optional, and use it over the default if set

One downside here would be if you want to send a follow up with a different model. That might be ok - you can stop it if you don't want to wait, then you get idle state and can change the model.

We could also add a model selector in the top right, across from the status bubble. That could either be there all the time (so we have status top left, model selector top right), or we could have it only there when there's a non-idle status taking the left status bubble space, and then come back to the left when idle.

WDYT?

Replace the static model name display in the status bar with an
interactive model picker when idle. Tapping shows a menu to switch
between Sonnet, Opus, and Haiku for the current chat session.

- ChatStatusBar: idle state shows a Menu-based model picker with
  sparkle icon and chevron indicator
- ChatViewModel: add modelOverride property that takes precedence
  over the global default from Settings
- ClaudeModel: update Sonnet and Opus raw values to 1M context
  variants (sonnet[1m], opus[1m])
- Keep Sonnet as the global default per maintainer feedback

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@zmanian zmanian force-pushed the what-ux-do-we-have-for-selecting-what-model-to-use branch from e4dbc4a to ba57035 Compare March 15, 2026 20:09
@zmanian
Copy link
Contributor Author

zmanian commented Mar 15, 2026

Reworked the PR based on your feedback:

  • Kept Sonnet as the default -- agreed it's a better default
  • Added per-chat model selector in the status bar -- when idle, the status pill becomes a tappable Menu that lets you switch between Sonnet, Opus, and Haiku for the current chat session. Non-idle states (connecting, streaming, reconnecting, error) still show the normal status indicators.
  • 1M context models -- Sonnet and Opus now use the [1m] context variants

The override is ephemeral (per chat session, not persisted). Selecting the same model as the global default clears the override. The picker shows a sparkle icon + model name + chevron to indicate it's tappable.

@mcintyre94 mcintyre94 changed the title Default to 1M context models and Opus Default to 1M context models and add model selector Mar 15, 2026
@mcintyre94
Copy link
Owner

Looks great, thankyou!

@mcintyre94 mcintyre94 merged commit 9898dad into mcintyre94:main Mar 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants